import { getUserType, isLoggedIn } from './auth';

/**
 * 检查用户是否有访问特定页面或功能的权限
 * @param {String} requiredRole - 需要的角色: 'all', 'faculty', 'student', 'loggedIn'
 * @returns {Boolean} - 是否有权限
 */
export const hasAccess = (requiredRole) => {
  // 如果不需要特定角色，所有人都可以访问
  if (requiredRole === 'all') {
    return true;
  }
  
  // 检查是否登录
  if (!isLoggedIn()) {
    return false;
  }
  
  // 如果只需要登录
  if (requiredRole === 'loggedIn') {
    return true;
  }
  
  // 获取当前用户类型
  const userType = getUserType();
  
  // 检查特定角色权限
  return requiredRole === userType;
};

/**
 * 显示页面元素基于用户角色
 * @param {String} role - 可以查看元素的角色: 'faculty', 'student', 'all'
 * @returns {Boolean} - 是否显示
 */
export const shouldShow = (role) => {
  if (role === 'all') {
    return true;
  }
  
  if (!isLoggedIn()) {
    return false;
  }
  
  const userType = getUserType();
  
  if (role === 'any') {
    return true;
  }
  
  return role === userType;
};

/**
 * 检查是否教师专属功能
 * @returns {Boolean}
 */
export const isFacultyFeature = () => {
  return getUserType() === 'faculty';
};

/**
 * 检查是否学生专属功能
 * @returns {Boolean}
 */
export const isStudentFeature = () => {
  return getUserType() === 'student';
};

/**
 * 根据用户类型获取首页跳转路径
 * 可用于登录后根据用户类型跳转到不同页面
 * @returns {String} - 跳转路径
 */
export const getHomePageByUserType = () => {
  const userType = getUserType();
  
  // 根据用户类型返回不同的首页路径
  // 目前统一使用主页，未来可以根据需求设置不同的首页
  return '/pages/index/index';
};

/**
 * 获取当前用户的角色名称
 * @returns {String} - 角色名称
 */
export const getUserRoleName = () => {
  const userType = getUserType();
  
  if (userType === 'faculty') {
    return '教师';
  } else if (userType === 'student') {
    return '学生';
  } else {
    return '未知';
  }
}; 